=====================================================
=== Boutique installation and Config Instructions ===
=====================================================

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! Before you start, backup your worlds, your server, your hard disk, and the !!
!! actual physical components that make up your computer. I'm a new java      !!
!! programmer, so I can't guarantee that your computer won't melt.            !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! If you are updating from an earlier version of Boutique, please follow the !!
!! instructions in "Updating Boutique.txt"                                    !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! In this version, I have introduced a number of new configuration options   !!
!! which result in a large number of possible permutations. If you find       !!
!! something doesn't work to your expectation, please contact me to get it    !!
!! fixed. Meanwhile, you may wish to downgrade your version of Boutique to    !!
!! 1.1 to keep things running smoothly                                        !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==================
== Instructions ==
==================

= Pro Instructions =

1. Copy boutique.jar to your plugins directory
2. Create a folder called "Boutique" in the plugins directory
3. Copy Congfig.yml into this folder
4. Open and edit the Config.yml you just made
5. Ensure a database named after the one you named in config.yml exists. The
   default name is "Boutique".
3. Create a table in this database called "Shops"
4. Design this table like the one seen in the "Reference Table.png"
7. Start the server
8. As a basic test, try the commands, /shopregister, /shopopen, /shoplist, and, 
   as long as you have not disabled teleporting to your own shop, /shop. Also,
   get another player to try to teleport to your shop with /shopgo.


= Noob Instructions =

Apologies for the patronising tone, I'm trying to catch most ways you could
fail at this and explain what's wrong

Make sure you're using a craftbukkit server, and not the "vanilla" one which is
downloaded from minecraft.net

1. Find the folder where your CraftBukkit server is installed. In that folder is
   a folder called "plugins". Open it. If you don't see a folder called plugins,
   it is likely that you have not installed craftbukkit, merely copied the jar
   into a folder.
2. Copy Boutique.jar from this folder into the folder you went to above

3. Enable your MySQL Server. If you don't know what that is, this is going to
   take a lot longer than you thought. Refer to [NOTE 1]
4. Create a new database. The default name for the database is "Boutique" (case
   sensitive - keep the uppercase B!). For some servers, you may not have
   control over your database name. In this case, you will be able to change the
   default name later. Stuck? Refer to [NOTE 2]
5. Create a new table in that database called "Shops" (case sensitive -
   keep the uppercase S!).
6. The table will need to be designed in a specific way. Refer to
   "Reference Table.png":
	-6a. You will need to create new fields named exactly like the ones
             under "fields" (case sensitive)
	-6b. The type of field is extremely important. The numbers in brackets
             refer to the length of the field.
	-6c. Collation should match the one specified.
	-6d. Save the table. If you're using phpmyadmin, you can check that the
             structure matches the reference by clicking on "structure" or
             something similar
	-6e. You may need to set Shop as a primary key, or an index key, or
             something like that to match the bottom bit reference structure.
             It might work if you don't bother doing that anyway.
7. A user account for your MySQL database must be able to have read/write
   permissions for the database Boutique. The default user, "root" has
   permission to do this, but if you can, set up another account for just that
   database. Otherwise, there are security risks. Remember the details of a user
   that can use the database, you'll need to enter them later on.

8. Start your Minecraft Craftbukkit server
9. Stop your Minecraft Craftbukkit server

10. Rememeber the plugins folder? Go back to that.
11. Boutique should have created a new folder in plugins called "Boutique".
    Go into it.
12. There should be a file called Config.yml, open this up to edit it. (Make
    sure it's not the Config.yml in the folder where this file is located.
    (They're identical, but editing the one in this folder will make no
    difference!) Refer to [NOTE 3] if you don't know how to edit a YML file
13. Your address will probably be localhost. Your username and password will be
    the details I asked you to remember earlier. If you chose to use the root
    account in spite of my advice, the password might be "root" or might just
    be blank. When leaving the option blank, do not put in a space after
    the colon.

14. Start the server
15. As a player, try the commands, /shopregister, /shopopen, /shoplist, and, 
    as long as you have not disabled teleporting to your own shop, /shop. Also,
    as long as you have not disabled teleporting to others' shops entirely, get
    another player to try to teleport to your shop with /shopgo

===================
== Configuration ==
===================

The configurtaion file adequately explains most options, but it does not explain
the teleport options well. This is exmplained here.

For a given shop, there is an owner, and there is everyone else, whom are known
to the config as "customer"s. The configuration allows you to seperate out the
rights of these groups to teleport to the shop in question. For example, you
might want to allow the owner to teleport to a shop, but not customers. The
configuration is not this simple, however. This is because shops have two
further properties - shops that are open/closed, and shops for whom their owner
is offline/online. Thus, the rights are divided again amongst these groups.

There are more options, however. You can set customers to use request
teleporting. With request teleporting, the customer can only teleport to a shop
if the owner agrees that you can. When the customer types in /shopgo username,
username gets a message on his screen which tells them that username wishes to
go to his shop, and that he must type /shopaccept to accept the request.

You can also bind the shop owner to that teleport request. This means that the
owner and the customer teleport to the shop when the teleport request is
accepted. The seller would not be able to teleport to the shop under the same
conditions otherwise.

Boutique should auto-disable itself if it finds options that don't make sense.
For example, using request teleporting when the owner is offline, or using
binding when request teleporting is not turned on for the respective option.

================================================================================

[NOTE 1]
MySQL is something which stores information on your computer. If you're using a
desktop/laptop computer, you will be able to install one relatively simply using
a program like WampServer or Lammp. These programs install web servers on your
computer, and you might just be able to install MySQL on its own. I don't know,
go Google it. You should be able to Google your way through to having a MySQL
server on your computer.

[NOTE 2]
With Lammp and Wamp, you will probably be using phpmyadmin to work on setting
the database up. I think with wamp, you can access it through the right-click
menu of the wamp icon in the bottom right hand corner of your windows desktop.
On my installation of lammp, I can access it using a web browser with the
address: http://localhost/phpmyadmin/
I'm not going to guide you through using the interface, because you should be
able to find a guide online somewhere.

[NOTE 3]
Editing a YML file is simple. You have the name of the option, followed by what
you want to set it to. For example:

---------------------
favourite_food: cake
--------------------

You could edit this with your favourite food, for example:

---------------------
favourite_food: cookies
---------------------

Remember to leave the space after the colon before you write how you want to
change the options

Additionaly, YML files can have sub-settings. Say you want to record the
favourite food and favourite minecraft block of you and your friend. You might
set it up like this:

---------------------
dave:
 favourite_food: cake
 favourite_block: stone_bricks
lucy:
 favourite_food: cooked_chicken
 favourite_block: stone_bricks
---------------------

I hope this demonstrates how information can be organised. The single space at
the beginning of the line is very important, as it tells the computer that it is
a sub-setting of the last setting above it to contain one less space

When you edit the YML file, don't change the name of any of the settings like,
for example "mysql_databasae". Only change what is after the colon.

